#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<unistd.h>
#include<string.h>
#include<stdio.h>

#define FIFO "./fifo"
#define MAX 124
//服务端通过管道拿到数据，输出到屏幕上
int main()
{
  //打开fifo
  int fifd=open(FIFO,O_RDONLY);
  if(fifd<0)
  {
    perror("open");
    return -1;
  }

  char buffer2[MAX]={0};
  //不断从管道中读数据，进行通信
  while(1)
  {
    int s=read(fifd,buffer2,sizeof(buffer2)-1);
    if(s>0)
    {
      buffer2[s]=0;

      //获取的数据输出到屏幕上
      printf("client form :");
      fflush(stdout);
      write(1,buffer2,strlen(buffer2));
    }
    else if(s==0){     //因为此时证明,写端已经关闭
      break;          //注意read返回值在管道中的应用
    }
    else{
      perror("read");
      break;
    }
  }
  close(fifd);    //手动关不关无所谓，进程结束会自己回收
  return 0;
}
